Media sharing during a video call

ABSTRACT

Video call devices having corresponding methods and non-transitory computer-readable media comprise: a video input interface configured to receive first video information; an audio input interface configured to receive first audio information; a transmitter configured to transmit first signals during a video call, wherein the first signals represent the first video information and the first audio information; a receiver configured to receive second signals during the video call, wherein the second signals represent second video information and second audio information; a video output interface configured to provide the second video information; an audio output interface configured to provide the second audio information; wherein the transmitter is further configured to transmit third signals during the video call, wherein the third signals represent at least one of media content, and a hyperlink, wherein the hyperlink indicates a location of the media content.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims benefit of U.S. Provisional Patent ApplicationSer. No. 61/485,229 entitled “MEDIA SHARING DURING A VIDEO CALL,” filedMay 12, 2011, the disclosure thereof incorporated by reference herein inits entirety.

This application claims benefit of U.S. Provisional Patent ApplicationSer. No. 61/485,233 entitled “WIRELESS NETWORK DEVICE CONFIGURATIONUSING TWO-DIMENSIONAL PATTERNS,” filed May 12, 2011, the disclosurethereof incorporated by reference herein in its entirety.

This application claims benefit of U.S. Provisional Patent ApplicationSer. No. 61/485,237 entitled “SMART REMOTE CONTROL DEVICES FOR VIDEOCALLING,” filed May 12, 2011, the disclosure thereof incorporated byreference herein in its entirety.

This application is related to U.S. Patent Application Serial No. (to beassigned, Attorney Docket No. TLY003001), entitled “WIRELESS NETWORKDEVICE CONFIGURATION USING TWO-DIMENSIONAL PATTERNS,” filed TBD, thedisclosure thereof incorporated by reference herein in its entirety.

This application is related to U.S. Patent Application Serial No. (to beassigned, Attorney Docket No. TLY004001), entitled “SMART REMOTE CONTROLDEVICES FOR CONTROLLING VIDEO CALL DEVICES,” filed TBD, the disclosurethereof incorporated by reference herein in its entirety.

FIELD

The present disclosure relates generally to video calling. Moreparticularly, the present disclosure relates to sharing media during avideo call.

BACKGROUND

The traditional use of television has been for passive consumption ofcontent. The content is mostly television programming (live as well ason-demand) and outputs of other local devices such as media players (forexample, DVD, CD, and VCR devices), video game devices, and the like.But despite the availability of large, high-resolution televisionscreens, few solutions allow the use of these television screens forvideo calling. One solution involves connecting a computer to a webcam,speakers, microphone, and the television screen, installing andexecuting video calling software on the computer, and controlling thecomputer using a keyboard and mouse. Users generally avoid such tedioustasks.

Similar problems plague interactive media sharing such as sharing photosonline. In order to share photos, most people prepare a web album, andemail links to those albums to other parties. However, this techniquedoes not allow the involved parties to step through the album in asynchronized manner while sharing verbal comments and the like. Inaddition, the steps of uploading photo albums and emailing links to thealbums generally require a web browser or other dedicated software and acomputer.

Other solutions involve “pure” screen sharing. According to thesesolutions, one user's screen is compressed and transported to otherparticipants. Such screen sharing often suffers from video compressionartifacts, especially if the available data rate for communicationfluctuates. Furthermore, such solutions fail to deliver media to allparticipants in their native, pristine format. These solutions also failto provide synchronized playback such that all users have an almostidentical contemporaneous experience while playing the media.

SUMMARY

In general, in one aspect, an embodiment features a video call devicecomprising: a video input interface configured to receive first videoinformation; an audio input interface configured to receive first audioinformation; a transmitter configured to transmit first signals during avideo call, wherein the first signals represent the first videoinformation and the first audio information; a receiver configured toreceive second signals during the video call, wherein the second signalsrepresent second video information and second audio information; a videooutput interface configured to provide the second video information; anaudio output interface configured to provide the second audioinformation; wherein the transmitter is further configured to transmitthird signals during the video call, wherein the third signals representat least one of media content, and a hyperlink, wherein the hyperlinkindicates a location of the media content.

Embodiments of the video call device can include one or more of thefollowing features. Some embodiments comprise an encoder/decoder(CODEC); wherein the receiver is further configured to receive fourthsignals, wherein the fourth signals represent a link partner mediaquality request, wherein the link partner media quality requestindicates a desired quality for the first video information; wherein theCODEC is configured to transcode the first video information accordingto the desired quality prior to the first signals being transmitted bythe transmitter. Some embodiments comprise a media interface configuredto receive the media content; wherein the third signals represent themedia content. Some embodiments comprise an encoder/decoder (CODEC);wherein the receiver is further configured to receive fourth signals,wherein the fourth signals represent a link partner media qualityrequest, wherein the link partner media quality request indicates adesired quality for the media content; wherein the CODEC is configuredto transcode the media content according to the desired quality prior tothe third signals being transmitted by the transmitter. In someembodiments, the media interface comprises at least one of: an SD cardinterface; a USB interface; and a mass storage interface. Someembodiments comprise a processor configured to generate one or morefirst playback synchronization commands, wherein the first playbacksynchronization commands include timing information for playback of themedia content; wherein the transmitter is further configured to transmitfourth signals during the video call, wherein the fourth signalsrepresent the one or more first playback synchronization commands. Insome embodiments, the receiver is further configured to receive fifthsignals during the video call, wherein the fifth signals represent oneor more second playback synchronization commands; and the processor isfurther configured to control playback of the media content according tothe one or more second playback synchronization commands. In someembodiments, the playback synchronization commands represent at leastone of: a file transfer status for the media content; a playbackposition for the media content; and a time of a modification of themedia content by a user. Some embodiments comprise one or more camerasconfigured to provide the first video information to the video inputinterface; and one or more microphones configured to provide the firstaudio information to the audio input interface.

In general, in one aspect, an embodiment features a method comprising:receiving first video information; receiving first audio information;transmitting first signals during a video call, wherein the firstsignals represent the first video information and the first audioinformation; receiving second signals during the video call, wherein thesecond signals represent second video information and second audioinformation; providing the second video information; providing thesecond audio information; and transmitting third signals during thevideo call, wherein the third signals represent at least one of mediacontent, and a hyperlink, wherein the hyperlink indicates a location ofthe media content.

Embodiments of the method can include one or more of the followingfeatures. Some embodiments comprise receiving fourth signals, whereinthe fourth signals represent a link partner media quality request,wherein the link partner media quality request indicates a desiredquality for the first video information; and transcoding the first videoinformation according to the desired quality prior to transmitting thefirst signals. Some embodiments comprise receiving the media content;wherein the third signals represent the media content. Some embodimentscomprise receiving fourth signals, wherein the fourth signals representa link partner media quality request, wherein the link partner mediaquality request indicates a desired quality for the media content; andtranscoding the media content according to the desired quality prior totransmitting the third signals. Some embodiments comprise generating oneor more first playback synchronization commands, wherein the firstplayback synchronization commands include timing information forplayback of the media content; and transmitting fourth signals duringthe video call, wherein the fourth signals represent the one or morefirst playback synchronization commands. Some embodiments comprisereceiving fifth signals during the video call, wherein the fifth signalsrepresent one or more second playback synchronization commands; andcontrolling playback of the media content according to the one or moresecond playback synchronization commands. In some embodiments, theplayback synchronization commands represent at least one of: a filetransfer status for the media content; a playback position for the mediacontent; and a time of a modification of the media content by a user.

In general, in one aspect, an embodiment features non-transitorycomputer-readable media embodying instructions executable by a computerto perform functions comprising: receiving first video information andfirst audio information; causing transmission of first signals during avideo call, wherein the first signals represent the first videoinformation and the first audio information; providing second videoinformation and second audio information based on second signalsreceived during the video call, wherein the second signals represent thesecond video information and the second audio information; causingtransmission of third signals during the video call, wherein the thirdsignals represent at least one of media content, and a hyperlink,wherein the hyperlink indicates a location of the media content.

Embodiments of the non-transitory computer-readable media can includeone or more of the following features. In some embodiments, thefunctions further comprise: receiving a link partner media qualityrequest, wherein the link partner media quality request indicates adesired quality for the first video information; and transcoding thefirst video information according to the desired quality prior tocausing transmission of the first signals. In some embodiments, thefunctions further comprise: receiving the media content; wherein thethird signals represent the media content. In some embodiments, thefunctions further comprise: receiving a link partner media qualityrequest, wherein the link partner media quality request indicates adesired quality for the media content; and transcoding the media contentaccording to the desired quality prior to causing transmission of thethird signals. In some embodiments, the functions further comprise:generating one or more first playback synchronization commands, whereinthe first playback synchronization commands include timing informationfor playback of the media content; and causing transmission of fourthsignals during the video call, wherein the fourth signals represent theone or more first playback synchronization commands. In someembodiments, the functions further comprise: receiving one or moresecond playback synchronization commands; and controlling playback ofthe media content according to the one or more second playbacksynchronization commands. In some embodiments, the playbacksynchronization commands represent at least one of: a file transferstatus for the media content; a playback position for the media content;and a time of a modification of the media content by a user.

The details of one or more implementations are set forth in theaccompanying drawings and the description below. Other features will beapparent from the description and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 shows elements of a video calling system according to oneembodiment.

FIG. 2 shows elements of a video calling device of FIG. 1 according toone embodiment.

FIG. 3 shows a process for the video calling system of FIG. 1 accordingto an embodiment where a first video call device shares local mediacontent with a second video call device during a video call.

FIG. 4 shows a process for the video calling system of FIG. 1 accordingto an embodiment where two video call devices share media content storedat a remote location during a video call.

FIG. 5 shows a process for the video calling system of FIG. 1 accordingto an embodiment where a first video call device transcodes video andshared local media content for a second video call device during a videocall.

The leading digit(s) of each reference numeral used in thisspecification indicates the number of the drawing in which the referencenumeral first appears.

DETAILED DESCRIPTION

The described embodiments provide media sharing during a video callwhile not requiring a personal computer. The video calls and mediasharing can be point-to-point or multi-point. These calls are notlimited to video calls, and can include voice-only or video-only callsas well. Embodiments ensure that the shared media are rendered (that is,played back to the participants) such that the playback timing, as wellas the apparent quality of the media, is nearly identical for allparticipants. Before describing these aspects, an example video calldevice is described.

Video Call Device

FIG. 1 shows elements of a video calling system 100 according to oneembodiment. Although in the described embodiments the elements of thevideo calling system 100 are presented in one arrangement, otherembodiments may feature other arrangements. For example, elements of thevideo calling system 100 can be implemented in hardware, software, orcombinations thereof.

Referring to FIG. 1 the video calling system 100 includes N video calldevices (video call device) 102A and 102B through 102N connected by anetwork 108. Network 108 can be implemented as a wide-area network suchas the Internet, a local-area network (LAN), or the like. While variousembodiments are described with respect to network communications, theyalso apply to devices employing other forms of data communications suchas direct links and the like.

In the embodiment of FIG. 1, the video call devices 102 do not includedisplay screens or speakers. Therefore each video call device 102 isconnected to a respective television set (TV) 106A and 106B through106N. In other embodiments, one or more of the video call devices 102includes a display screen and speakers, so one or more television sets106 are not required. In FIG. 1, each video call device 102 iscontrolled by one or more respective users, for example using one ormore respective remote controls (RC) 110.

FIG. 2 shows elements of a video call device 102 of FIG. 1 according toone embodiment. Although in the described embodiments the elements ofvideo call device 102 are presented in one arrangement, otherembodiments may feature other arrangements. For example, elements ofvideo call device 102 can be implemented in hardware, software, orcombinations thereof.

Referring to FIG. 2, the video call device 102 includes an audio-visual(AV) interface (I/F) 202, a network adapter 204, a media interface 206,and a remote control (RC) interface 208. The video call device 102 alsoincludes a processor or central processing unit (CPU) 210, a graphicalprocessing unit (GPU) 212, a memory 214, a coder/decoder (CODEC) 218, amultiplexer (MUX) 220, and a clock 222.

The AV interface 202 includes a video input interface (Video In) 224, anaudio input interface (Audio In) 226, a video output interface (VideoOut) 228, and an audio output interface (Audio Out) 230. The video inputinterface 224 can be connected to one or more video capture devices suchas a camera 232 or the like. Camera 232 can be implemented as awide-angle camera that sees the whole room. The audio input interface226 can be connected to one or more audio capture device such as amicrophone 234 or the like. Microphone 234 can be implemented as anoise-cancelling microphone. In some embodiments, video call device 102includes one or more cameras 232 and/or one or more microphones 234. Forexample, multiple cameras 232 can be included to generatethree-dimensional (3D) video. As another example, multiple microphones234 can be included so that beamforming techniques can be used toisolate conversations from background noise.

The video output interface 228 can be connected to a display screen suchas that of a television set 106. The audio output interface 230 can beconnected to one or more speakers such as those of a television set 106.Alternatively, the video output interface 228 and/or the audio outputinterface 230 can be connected to the audio-visual inputs of a hometheater system or the like. The video output interface 228 and the audiooutput interface 230 can employ any appropriate connection, for examplesuch as Digital Visual Interface (DVI), High-Definition MultimediaInterface (HDMI), and the like.

The network adapter 204 includes a wireless network adapter 236 and awired network adapter 238. In some embodiments, network adapter 204includes additional communication interfaces, for example includingBluetooth communication interfaces and the like.

The wireless network adapter 236 includes a transmitter (TX) 240 totransmit wireless signals and a receiver (RX) 242 to receive wirelesssignals, and is connected to one or more antennas 244. In someembodiments, wireless network adapter 236 is compliant with all or partof IEEE standard 802.11, including draft and approved amendments such as802.11-1997, 802.11a, 802.11b, 802.11g, 802.11-2007, 802.11n,802.11-2012, and 802.11ac. For example, the wireless network adapter 236can allow Wi-Fi connections, for example to a router, to other Wi-Fidevices such as smartphones and computers, and the like.

The wired network adapter 238 includes a transmitter (TX) 246 totransmit wired signals and a receiver (RX) 248 to transmit wiredsignals, and is connected to a wired network interface 250. In someembodiments, wired network adapter 238 is compliant with all or part ofIEEE standard 802.3, including draft and approved amendments.

The disclosed video call devices 102 are capable of peer-to-peer (P2P)audio/video communication. Using P2P technology, two video call devices102 can be connected to each other by one or more networks such thatdata packets can flow between them. The video call devices 102 can belocated anywhere in the world, so long as they are connected by networks108 such as the Internet. The video call devices 102 can employ multiplecommunication channels between participants. One channel carries theprimary video stream of the video call. Another channel carries theprimary audio stream of the video call. A command channel carriescommands such as camera commands (for example, pan, tilt, and zoom) andthe like. The command channel can also carry synchronization commands toensure synchronized media playback across multiple sites. Additionalchannels can employed for other tasks such as media sharing and thelike.

Some available P2P technologies provide multiple communication channelsfor each video call device 102. The video call device 102 can employ theprovided channels and/or channels established outside the chosen P2Ptechnology. P2P technologies generally provide network addresstranslation (NAT) traversal for their channels. The video call devices102 described herein can provide NAT traversal for channels establishedoutside the chosen P2P technology.

The media interface 206 receives local media content from externalsources, and provides that media content to one or both of processors210 and 212. In the embodiment of FIG. 2, the media interface 206includes a Secure Digital (SD) interface 252, a Universal Serial Bus(USB) interface 254, and a mass storage interface 216. Other embodimentscan include other interfaces.

The SD interface 252 receives SD cards, and provides media contentstored thereon to the CPU 210 and the GPU 212. The USB interface 254receives USB devices such as USB memory sticks, USB-cabled devices, andthe like, and provides media content from those devices to the CPU 210and the GPU 212. The USB interface 254 can also receive input devicessuch as USB dongles for wireless keyboards, wireless pointing devices,and the like. The mass storage interface 216 allows for connection tomass storage devices such as external solid-state drives, disk drives,and the like, and provides media content stored thereon to the CPU 210and the GPU 212.

The remote control (RC) interface 208 receives wireless signals such asinfrared signals from remote control devices for controlling the videocall device 102. In some embodiments, the video call device 102 can becontrolled by a wireless device via the wireless network adapter 236.

The CPU 210 handles general processing functions, while the GPU 212handles graphic processing functions. In some embodiments, the CPU 210handles graphic processing functions as well, so the GPU 212 is notrequired. The CPU 210 receive a time base from clock 222. The memory 214can be implemented as semiconductor memory and the like.

The CODEC 218 provides encoding, decoding, and transcoding of the audioand video data handled by the video call device 102. In someembodiments, the CODEC 218 is compliant with one or more standards suchas the H.264 standard and the like.

The MUX 220 allows audio and video to be exchanged via the A/V interface202, a virtual interface 256, or both. The MUX 220 allows any of theinputs and outputs to be switched with virtual inputs and outputs. Forexample, audio and video can be provided to and/or from other localdevices such as smartphones, portable cameras, document cameras,computer displays of external computers, and the like.

Media Sharing

In some embodiments, the described video call devices 102 provide forsharing of arbitrary media content during the video call. In some casesthe media content is provided by a video call device 102. In othercases, the media content is stored at a remote location, and a videocall device 102 provides a hyperlink that indicates that location. Thehyperlink can include a uniform resource locator (URL), Internetprotocol (IP) address, or the like. Any type of media content can beshared Examples of media content that can be shared include photos;documents in various formats; document snapshots; screen snapshots,video files and streams, audio files and streams, and the like. Videocall participants can provide audio and/or video commentary during thevideo call while sharing the media content.

The described video call devices 102 allow users to share photos duringa video call. For example, a user can prepare a playlist of photosduring or before a video call. During the video call, the user canmanually step through the playlist, thereby deciding the sequence andpace of sharing the photos in real time. Alternatively, the user canprepare the playlist with the desired sequence and share the photos suchthat the sequence of photos advances automatically. The photos can betransferred as files during the video call.

The described video call devices 102 allow users to share documentsduring a video call. For example, a user can choose documents in variousformats for sharing. The formats can include text and binary formats,from simple text-only documents to documents that include text andgraphics. The formats can include portable formats, webpage formats, andthe like. The documents can be transferred as files during the videocall.

The described video call devices 102 allow users to share documentsnapshots during a video call. The documents can include the documentsmentioned above, webpages, and the like. A snapshot can be an imagerepresenting a document. The image can be in any format. For example, inthe case of a webpage, the snapshot can be a bit-map recording of therendered webpage content. The user can use the web browser during orbefore the call to take snapshots of web content to share in the call.The document snapshots can be transferred as files during the videocall.

The described video call devices 102 allow users to share video filesand streams during a video call. The video files and streams can berecorded using camera 232. Alternatively, the video files and streamscan be imported into the video call devices 102 from other sources, suchas memory cards, other physical devices, networks such as the Internet,and the like. The video files and streams can be transferred as files orstreamed during the video call.

The described video call devices 102 allow users to share audio filesand streams during a video call. The audio files and streams can berecorded using microphone 234. Alternatively, the audio files andstreams can be imported into the video call devices 102 from othersources, such as memory cards, other physical devices, networks such asthe Internet, and the like. The audio files can be transferred as filesor streamed during the video call.

The described video call devices 102 allow users to share applicationsand screens during a video call. For example, during execution of anapplication a live computer screen can be shared as a video or one ormore snapshots. In many cases, sharing an application is more usefulthan sharing documents produced by the application. One advantage isthat the other users need not execute, or even possess, the application.Another advantage is that the document views produced by the applicationare the same for all users. For example, it is more useful to share aview of a small portion of a spreadsheet than to share the spreadsheetfile, have all users execute the spreadsheet application, and then haveall users navigate to the same place in the spreadsheet. As anotherexample, it is simpler to share views of a secure webpage than to haveall of the users log on to the web site and find the same view of thesame webpage.

The described video call devices 102 allow users to share playlists ofmedia content. The playlist can include only one type of media, ormultiple types of media. The media content can be shared consecutively,and in some cases, simultaneously. For example, a playlist of photos canbe accompanied by music. The playlist can include media files, mediastreams, and hyperlinks to media content. URLs to photo playlists canalso be shared, such that photos are fetched and rendered in asynchronized manner for all participants during the call. The order ofstepping through the media can be chosen by any participant during thecall.

The described video call devices 102 allow users to share media contentusing hyperlinks for the media content during a video call. For example,the hyperlink can be the URL of a webpage, which is then both fetchedand rendered in a synchronized manner for all participants during thevideo call. URLs to playlists can also be shared, such that playlistmedia content are fetched and rendered in a synchronized manner for allparticipants during the call. The order of stepping through the mediacontent can be chosen by any participant during the call. The hyperlinkscan be transferred as files during the video call.

The media content shared during the video call can originate from manysources. For example, a participant can insert an SD card storing amedia file into the SD interface 252 of a video call device 102. Aparticipant can obtain a media file from an external device such as asmartphone, computer, or the like using the USB interface 254 of a videocall device 102, the wired network adapter 238 or wireless networkadapter 236 of a video call device 102, or the like. A participant canrecord a media file using the camera 232 of a video call device 102. Aparticipant can download a media file from the Internet into a videocall device 102. A participant can generate snapshots of web pages whilebrowsing the web on a video call device 102. A participant can share aURL for media files stored in a network such as the Internet. Of course,other sources can be used.

Synchronized Media Playback

In some embodiments, the described video call devices 102 also providesynchronized media playback such that all participants of a video callhave an almost identical contemporaneous experience while playing themedia content. During a video call, media files can be downloaded orstreamed from the Internet to video call devices 102 or transmitted fromone video call device 102 to another with the goal of playing them backin a synchronized manner. The video call devices 102 employsynchronization algorithms to keep track of what data are available atwhat video call devices 102 at a certain time. To minimize latencies,some files are transmitted (or fetched) ahead of time. Data arepre-fetched (or pre-transmitted) in anticipation that those data will berequired as the playback advances. The synchronization algorithms alsoconsider how much network throughput is available, while not adverselyaffecting the audio/video packet flow.

Synchronization scenarios are described below. In sharing files such asphotos, synchronization involves determining when all participants haveobtained the file. In sharing streams and video files, synchronizationinvolves matching playback positions in the streams.

The media can originate not only from video call participants'end-points, but also from remote sites such as Internet servers. In thelatter case, each participant's video call device 102 fetches the mediausing the same URLs in a synchronized manner such that the media can beplayed back in a synchronized manner.

In some embodiments, other events can be synchronized during a videocall. For example, when a video call participant modifies the sharedmedia content, the modification can be synchronized so that it isrendered simultaneously for all video call participants. Examplemodifications can include rotating an image after it is shared, changingthe cursor position in a video (jogging), zooming in on an image orvideo, marking up the shared media content, and the like.

FIG. 3 shows a process 300 for the video calling system 100 of FIG. 1according to an embodiment where a first video call device 102A shareslocal media content with a second video call device 102B during a videocall. Although in the described embodiments the elements of process 300are presented in one arrangement, other embodiments may feature otherarrangements. For example, in various embodiments, some or all of theelements of process 300 can be executed in a different order,concurrently, and the like. Also some elements of process 300 may not beperformed, and may not be executed immediately after each other. Forclarity, only two video call devices 102A,B are shown in FIG. 3.However, it should be understood that more than two video call devices102 can participate in process 300.

Referring to FIG. 3, the video call devices 102A,B conduct a video call.In particular, the first video call device 102A receives first audioinformation and first video information AV1 at 302, for example from alocal camera 232 and microphone 234. The second video call device 102Breceives second audio information and second video information AV2 at304. The video call devices 102A,B exchange the first and second audioand video information AV1 and AV2 at 306. The first video call device102A renders the second audio and video information AV2 at 308, forexample on television set 106A. The second video call device 102Brenders the first audio and video information AV1 at 310, for example ontelevision set 106B. This exchange can continue for the remainder ofprocess 300.

At 312, the first video call device 102A receives local media content.For example, the first video call device 102A can receive a photo storedon an SD card inserted in SD interface 252. At 314, the first video calldevice 102A sends the media content to the second video call device102B. While the media content is being transferred, the displays at bothends of the video call show the status of the transfer.

At 316, when the media content is available at video call device 102B,the video call devices 102 exchange one or more synchronization commandsover the command channel to indicate completion of the transfer. Forexample, at one video call device 102, the processor 210 generates oneor more synchronization commands, and either transmitter 240 ortransmitter 246 transmit signals representing the one or moresynchronization commands. At the other video call device 102, eitherreceiver 242 or receiver 248 receive the signals representing the one ormore synchronization commands, and processor 210 controls the playbackof the media content according to the one or more synchronizationcommands. In response to the commands, the video call devices 102 renderthe media content at the same time. For example, the video call devices102 render a photo simultaneously. As another example, the video calldevices 102 begin playback of a video file simultaneously. Inparticular, video call device 102A renders the media content at 318, andvideo call device 102B renders the media content at 320.

In FIG. 3, a two-way exchange of synchronization commands is shown. Inother embodiments, a single synchronization command can be sent. Forexample, the second video call device 102B can send a singlesynchronization command to the first video call device 102A when thetransfer of the media content to the second video call device 102B iscomplete, is sufficiently complete to begin playback, or the like. Forexample, rendering of a video can begin when a sufficient amount of thevideo has been transferred rather than waiting for the transfer tocomplete. As another example, when the media content includes multiplephotos, rendering of one photo can begin while subsequent photos arebeing transferred.

FIG. 4 shows a process 400 for the video calling system 100 of FIG. 1according to an embodiment where two video call devices 102A,B sharemedia content stored at a remote location during a video call. Althoughin the described embodiments the elements of process 400 are presentedin one arrangement, other embodiments may feature other arrangements.For example, in various embodiments, some or all of the elements ofprocess 400 can be executed in a different order, concurrently, and thelike. Also some elements of process 400 may not be performed, and maynot be executed immediately after each other. For clarity, only twovideo call devices 102A,B are shown in FIG. 4. However, it should beunderstood that more than two video call devices 102 can participate inprocess 400.

Referring to FIG. 4, the video call devices 102A,B conduct a video call.In particular, the first video call device 102A receives first audioinformation and first video information AV1 at 402, for example from alocal camera 232 and microphone 234. The second video call device 102Breceives second audio information and second video information AV2 at404. The video call devices 102A,B exchange the first and second audioand video information AV1 and AV2 at 406. The first video call device102A renders the second audio and video information AV2 at 408, forexample on television set 106A. The second video call device 102Brenders the first audio and video information AV1 at 410, for example ontelevision set 106B. This exchange can continue for the remainder ofprocess 400.

At 412, the first video call device 102A receives a hyperlink such as aURL. For example, a user of the first video call device 102A can inputthe hyperlink using a remote control or wireless keyboard. At 414, thefirst video call device 102A sends the hyperlink to the second videocall device 102B. Each video call device 102 uses the hyperlink toindependently get the media content from a network server 430 indicatedby the hyperlink. In particular, at 416 the first video call device 102Auses the hyperlink to get the media content, and at 418 the second videocall device 102B uses the hyperlink to get the media content.

At 420, when the media content is available at both video call devices102A,B, the video call devices 102 exchange one or more synchronizationcommands over the command channel to indicate completion of thetransfer. In response to the commands, the video call devices 102 renderthe media content at the same time. For example, the video call devices102 render a photo simultaneously. As another example, the video calldevices 102 begin playback of a video file simultaneously. Inparticular, video call device 102A renders the media content at 422, andvideo call device 102B renders the media content at 424.

Media Quality Preservation

In some embodiments, the described video call devices 102 preserve theapparent quality of media shared during a video call. One illustrativeexample is the case of photo sharing. In some current photo sharingapproaches, a photo slideshow is treated as a video. That is, the photosare compressed using a video compression technique and streamed to otherparticipants. However, this approach introduces undesirable videocompression artifacts. For example, each photo appears blurry at first,and then is enhanced over time. As another example, hardware videoencoders are often forced to insert a key frame (also called intra frameor intra-coded frame or I-frame) at regular intervals. In case of aphoto, this is equivalent to communicating the photo again from scratch.This might lead to the photo's appearance going through repeated cyclesof blurry-to-crisp and blurry again. In contrast, described embodimentssend the photo files to all participants so the photos appear the sameto all participants, including the sender.

The described video call devices 102 also consider the resolution of thedisplay devices employed by video call participants, both for theprimary video stream and for media sharing. During setup of a videocall, each video call device 102 informs the other video call devices102 of its display device resolution. During the video call, the videocall devices 102 employ transcoding to generate video streams ofappropriate resolutions, thereby preserving video quality while reducingbandwidth usage.

FIG. 5 shows a process 500 for the video calling system 100 of FIG. 1according to an embodiment where a first video call device 102Atranscodes video and shared local media content for a second video calldevice 102B during a video call. Although in the described embodimentsthe elements of process 500 are presented in one arrangement, otherembodiments may feature other arrangements. For example, in variousembodiments, some or all of the elements of process 500 can be executedin a different order, concurrently, and the like. Also some elements ofprocess 500 may not be performed, and may not be executed immediatelyafter each other. For clarity, only two video call devices 102A,B areshown in FIG. 5. However, it should be understood that more than twovideo call devices 102 can participate in process 500.

Referring to FIG. 5, at 502, the second video call device 102B sends alink partner media quality request to the first video call device 102A.The link partner media quality request indicates a desired quality forvideo call video and the media content. For example, the link partnermedia quality request can indicate the resolution of the display deviceconnected to the second video call device 102B.

The video call devices 102A,B then conduct a video call. In particular,the first video call device 102A receives first audio information andfirst video information AV1 at 504, for example from a local camera 232and microphone 234. The second video call device 102B receives secondaudio information and second video information AV2 at 506. The videocall devices 102A,B exchange the first and second audio and videoinformation AV1 and AV2 at 510. The first video call device 102A rendersthe second audio and video information AV2 at 512, for example ontelevision set 106A. The second video call device 102B renders the firstaudio and video information AV1 at 514, for example on television set106B. However, the first video call device 102A transcodes the firstvideo information according to the desired quality at 508 prior tosending the first video information to the second video call device102B. In particular, CODEC 218 of the first video call device 102Atranscodes the first video information. This exchange can continue forthe remainder of process 500.

At 516, the first video call device 102A receives local media content.For example, the first video call device 102A can receive a photo storedon an SD card inserted in SD interface 252. At 518, the first video calldevice 102A transcodes the media content according to the desiredquality prior to sending the media content to the second video calldevice 102B. In particular, CODEC 218 of the first video call device102A transcodes the media content. At 520, the first video call device102A sends the transcoded media content to the second video call device102B. While the media content is being transferred, the displays at bothends of the video call show the status of the transfer.

At 520, when the transcoded media content is available at video calldevice 102B, the video call devices 102 exchange one or moresynchronization commands over the command channel to indicate completionof the transfer. In response to the commands, the video call devices 102render the media content at the same time. For example, the video calldevices 102 render a photo simultaneously. As another example, the videocall devices 102 begin playback of a video file simultaneously. Inparticular, video call device 102A renders the media content at 524, andvideo call device 102B renders the transcoded media content at 526.

In FIG. 5, a two-way exchange of synchronization commands is shown. Inother embodiments, a single synchronization command can be sent. Forexample, the second video call device 102B can send a singlesynchronization command to the first video call device 102A when thetransfer of the transcoded media content to the second video call device102B is complete, is sufficiently complete to begin playback, or thelike.

Embodiments of the disclosure can be implemented in digital electroniccircuitry, or in computer hardware, firmware, software, or incombinations of them. Embodiments of the disclosure can be implementedin a computer program product tangibly embodied in a machine-readablestorage device for execution by a programmable processor; and methodsteps of the disclosure can be performed by a programmable processorexecuting a program of instructions to perform functions of thedisclosure by operating on input data and generating output. Thedisclosure can be implemented advantageously in one or more computerprograms that are executable on a programmable system including at leastone programmable processor coupled to receive data and instructionsfrom, and to transmit data and instructions to, a data storage system,at least one input device, and at least one output device. Each computerprogram can be implemented in a high-level procedural or object-orientedprogramming language, or in assembly or machine language if desired; andin any case, the language can be a compiled or interpreted language.Suitable processors include, by way of example, both general and specialpurpose microprocessors. Generally, a processor will receiveinstructions and data from a read-only memory and/or a random accessmemory. Generally, a computer will include one or more mass storagedevices for storing data files; such devices include magnetic disks,such as internal hard disks and removable disks; magneto-optical disks;and optical disks. Storage devices suitable for tangibly embodyingcomputer program instructions and data include all forms of non-volatilememory, including by way of example semiconductor memory devices, suchas EPROM, EEPROM, and flash memory devices; magnetic disks such asinternal hard disks and removable disks; magneto-optical disks; andCD-ROM disks. Any of the foregoing can be supplemented by, orincorporated in, ASICs (application-specific integrated circuits).

A number of implementations of the disclosure have been described.Nevertheless, it will be understood that various modifications may bemade without departing from the spirit and scope of the disclosure.Accordingly, other implementations are within the scope of the followingclaims.

1. A video call device comprising: a video input interface configured to receive first video information; an audio input interface configured to receive first audio information; a transmitter configured to transmit first signals during a video call, wherein the first signals represent the first video information and the first audio information; a receiver configured to receive second signals during the video call, wherein the second signals represent second video information and second audio information; a video output interface configured to provide the second video information; an audio output interface configured to provide the second audio information; wherein the transmitter is further configured to transmit third signals during the video call, wherein the third signals represent at least one of media content, and a hyperlink, wherein the hyperlink indicates a location of the media content.
 2. The video call device of claim 1, further comprising: an encoder/decoder (CODEC); wherein the receiver is further configured to receive fourth signals, wherein the fourth signals represent a link partner media quality request, wherein the link partner media quality request indicates a desired quality for the first video information; wherein the CODEC is configured to transcode the first video information according to the desired quality prior to the first signals being transmitted by the transmitter.
 3. The video call device of claim 1, further comprising: a media interface configured to receive the media content; wherein the third signals represent the media content.
 4. The video call device of claim 5, further comprising: an encoder/decoder (CODEC); wherein the receiver is further configured to receive fourth signals, wherein the fourth signals represent a link partner media quality request, wherein the link partner media quality request indicates a desired quality for the media content; wherein the CODEC is configured to transcode the media content according to the desired quality prior to the third signals being transmitted by the transmitter.
 5. The video call device of claim 5, wherein the media interface comprises at least one of: an SD card interface; a USB interface; and a mass storage interface.
 6. The video call device of claim 1, further comprising: a processor configured to generate one or more first playback synchronization commands, wherein the first playback synchronization commands include timing information for playback of the media content; wherein the transmitter is further configured to transmit fourth signals during the video call, wherein the fourth signals represent the one or more first playback synchronization commands.
 7. The video call device of claim 6, wherein: the receiver is further configured to receive fifth signals during the video call, wherein the fifth signals represent one or more second playback synchronization commands; and the processor is further configured to control playback of the media content according to the one or more second playback synchronization commands.
 8. The video call device of claim 7, wherein the playback synchronization commands represent at least one of: a file transfer status for the media content; a playback position for the media content; and a time of a modification of the media content by a user.
 9. The video call device of claim 1, further comprising: one or more cameras configured to provide the first video information to the video input interface; and one or more microphones configured to provide the first audio information to the audio input interface.
 10. A method comprising: receiving first video information; receiving first audio information; transmitting first signals during a video call, wherein the first signals represent the first video information and the first audio information; receiving second signals during the video call, wherein the second signals represent second video information and second audio information; providing the second video information; providing the second audio information; and transmitting third signals during the video call, wherein the third signals represent at least one of media content, and a hyperlink, wherein the hyperlink indicates a location of the media content.
 11. The method of claim 10, further comprising: receiving fourth signals, wherein the fourth signals represent a link partner media quality request, wherein the link partner media quality request indicates a desired quality for the first video information; and transcoding the first video information according to the desired quality prior to transmitting the first signals.
 12. The method of claim 10, further comprising: receiving the media content; wherein the third signals represent the media content.
 13. The method of claim 12, further comprising: receiving fourth signals, wherein the fourth signals represent a link partner media quality request, wherein the link partner media quality request indicates a desired quality for the media content; and transcoding the media content according to the desired quality prior to transmitting the third signals.
 14. The method of claim 10, further comprising: generating one or more first playback synchronization commands, wherein the first playback synchronization commands include timing information for playback of the media content; and transmitting fourth signals during the video call, wherein the fourth signals represent the one or more first playback synchronization commands.
 15. The method of claim 14, further comprising: receiving fifth signals during the video call, wherein the fifth signals represent one or more second playback synchronization commands; and controlling playback of the media content according to the one or more second playback synchronization commands.
 16. The method of claim 15, wherein the playback synchronization commands represent at least one of: a file transfer status for the media content; a playback position for the media content; and a time of a modification of the media content by a user.
 17. Non-transitory computer-readable media embodying instructions executable by a computer to perform functions comprising: receiving first video information and first audio information; causing transmission of first signals during a video call, wherein the first signals represent the first video information and the first audio information; providing second video information and second audio information based on second signals received during the video call, wherein the second signals represent the second video information and the second audio information; causing transmission of third signals during the video call, wherein the third signals represent at least one of media content, and a hyperlink, wherein the hyperlink indicates a location of the media content.
 18. The non-transitory computer-readable media of claim 17, wherein the functions further comprise: receiving a link partner media quality request, wherein the link partner media quality request indicates a desired quality for the first video information; and transcoding the first video information according to the desired quality prior to causing transmission of the first signals.
 19. The non-transitory computer-readable media of claim 17, wherein the functions further comprise: receiving the media content; wherein the third signals represent the media content.
 20. The non-transitory computer-readable media of claim 19, wherein the functions further comprise: receiving a link partner media quality request, wherein the link partner media quality request indicates a desired quality for the media content; and transcoding the media content according to the desired quality prior to causing transmission of the third signals.
 21. The non-transitory computer-readable media of claim 17, wherein the functions further comprise: generating one or more first playback synchronization commands, wherein the first playback synchronization commands include timing information for playback of the media content; and causing transmission of fourth signals during the video call, wherein the fourth signals represent the one or more first playback synchronization commands.
 22. The non-transitory computer-readable media of claim 21, wherein the functions further comprise: receiving one or more second playback synchronization commands; and controlling playback of the media content according to the one or more second playback synchronization commands.
 23. The non-transitory computer-readable media of claim 22, wherein the playback synchronization commands represent at least one of: a file transfer status for the media content; a playback position for the media content; and a time of a modification of the media content by a user. 